import {
  IConfiguration,
  IDataReferenceItem,
  IFetchAgent,
  FetchId,
  CanceledError,
  ILogger,
  ItemIndex,
  ITypedDataSource,
  IPrefetcherBuilder,
  createPrefetcher as originalCreatePrefetcher,
} from './prefetcher';
import { Logger } from './logger';


export {
  IConfiguration,
  ILogger,
  IDataReferenceItem,
  ITypedDataSource,
  IFetchAgent,
  CanceledError,
  FetchId,
  ItemIndex,
  Logger
}

/**
 * Creates new prefetcher
 * 
 * @param configuration Configuration to use
 * @returns Builder interface
 */
export function createPrefetcher(configuration?: IConfiguration): IPrefetcherBuilder {
  return originalCreatePrefetcher(configuration);
}



